03 2 직접풀어보세요. | ✅저자: 이유정(박사)
📝 문제1] 세 수 중 가장 큰 수 구하기
사용자로부터 정수 3개를 입력받아, 가장 큰 수를 출력하세요.
단, 조건문만을 사용해야 하며, 내장 함수 max()
는 사용하지 마세요.
모두 같을 수도 있다는 조건은 무시해도 됩니다.
✨ 힌트:
- 두 수를 먼저 비교한 후, 결과와 남은 하나를 다시 비교하면 됩니다.
if
만 사용할 수도 있고, 삼항 연산자(a if 조건 else b
)를 활용해도 됩니다.
🖨️ 출력 예시
입력 예:
10
22
17
출력: 가장 큰 수는 22입니다.
✅ 정답 코드
a = int(input())
b = int(input())
c = int(input())
# 두 수를 먼저 비교한 뒤, 나머지 수와 다시 비교
max_num = a if a > b else b
max_num = max_num if max_num > c else c
print(f"가장 큰 수는 {max_num}입니다.")
🔍 해설
- 첫 비교:
a > b
→ 더 큰 수를max_num
에 저장 - 두 번째 비교:
max_num > c
→ 최종적으로 가장 큰 수 추출 삼항 연산자
두 번 사용해서 깔끔하게 비교 로직 구성
📝 문제2] 두 수를 입력받아 둘 다 짝수일 때만 "통과"를 출력하세요.
✨ 힌트:
a % 2 == 0
은 짝수인지 확인하는 조건입니다. 논리 연산자 and
를 활용해 보세요.
🖨️ 출력 예시: (입력값: 4, 6)
통과
✅ 정답 코드:
a = int(input("첫 번째 숫자: "))
b = int(input("두 번째 숫자: "))
if a % 2 == 0 and b % 2 == 0:
print("통과")
else:
print("실패")
🔍 해설:
- 두 수 모두 짝수이면
"통과"
출력. - 하나라도 홀수면
"실패"
출력.
📝 문제3] 숫자를 입력받아 0보다 크고 100 이하이면 "적절"을 출력하고, 그렇지 않으면 "범위 초과"를 출력하세요.
✨ 힌트:
0 < num <= 100
형태의 조건식을 사용하세요.
🖨️ 출력 예시: (입력값: 105)
범위 초과
✅ 정답 코드:
num = int(input("숫자를 입력하세요: "))
if 0 < num <= 100:
print("적절")
else:
print("범위 초과")
🔍 해설:
0보다 크고
,100 이하
일 때만"적절"
출력.- 그 외에는
"범위 초과"
출력.
📝 문제4] 세 개의 수를 입력받아 모두 10 이상일 때만 "모두 통과"를 출력하세요.
✨ 힌트:
and
연산자를 3개 연결해서 조건을 만들어 보세요.
🖨️ 출력 예시:
실패
✅ 정답 코드:
x = int(input("첫 번째 수: "))
y = int(input("두 번째 수: "))
z = int(input("세 번째 수: "))
if x >= 10 and y >= 10 and z >= 10:
print("모두 통과")
else:
print("실패")
🔍 해설:
- 세 수 모두
10 이상
이어야"모두 통과"
출력. - 하나라도 조건에 안 맞으면
"실패"
출력.
📝 문제5] 숫자를 입력받아 짝수면 "EVEN", 홀수면 "ODD"를 출력하는 프로그램을 삼항 연산자를 사용해 작성하세요.
✨ 힌트:
값1 if 조건 else 값2
형태를 써보세요.
🖨️ 출력 예시: (입력값: 7)
ODD
✅ 정답 코드:
num = int(input("숫자 입력: "))
result = "EVEN" if num % 2 == 0 else "ODD"
print(result)
🔍 해설:
% 2 == 0
이면"EVEN"
출력, 아니면"ODD"
출력.- 삼항 조건식을 사용하면 한 줄로 표현할 수 있음.
📝 문제6] 사용자에게 등급(A, B, C, 기타)을 입력받아 각 등급에 따라 메시지를 출력하세요. A: "최우수", B: "우수", C: "보통", 나머지: "재평가".
✨ 힌트:
if
,elif
,else
를 모두 활용하세요.
🖨️ 출력 예시: (입력값: D)
재평가
✅ 정답 코드:
grade = input("등급 입력(A, B, C 등): ")
if grade == "A":
print("최우수")
elif grade == "B":
print("우수")
elif grade == "C":
print("보통")
else:
print("재평가")
🔍 해설:
- 등급에 따라 다른 문장을 출력.
if-elif-else
를 사용한 조건 분기 연습 문제.
📝 문제7] 로그인 시스템
사용자에게 아이디와 비밀번호를 입력받고,
아이디가 "admin"
이고 비밀번호가 "1234"
일 때만 "접속 성공"
을 출력하고,
그 외에는 "접속 실패"
를 출력하도록 프로그램을 완성하세요.
빈칸을 채우세요.
user_id = input("아이디를 입력하세요: ")
password = input("비밀번호를 입력하세요: ")
if (__________ and __________):
print("접속 성공")
else:
print("접속 실패")
✨ 힌트:
user_id == "admin"
password == "1234"
🖨️ 출력 예시: 입력값: admin
, 1234
접속 성공
✅ 정답 코드:
user_id = input("아이디를 입력하세요: ")
password = input("비밀번호를 입력하세요: ")
if user_id == "admin" and password == "1234":
print("접속 성공")
else:
print("접속 실패")
🔍 해설:
- 두 조건을
and
로 묶어서 둘 다 일치할 때만 접속 허용. - 보안 인증의 기초 로직에 활용됨.
📝 문제8] 이벤트 참여 조건 행사에 참여할 수 있는 조건은 다음과 같다:
- 나이는 만 20세 이상이어야 하고
- 지역은 "서울" 또는 "부산"이어야 한다.
조건을 만족하면"이벤트 참여 가능"
, 그렇지 않으면"참여 불가"
를 출력하는 코드를 작성하세요.
읽고 조건 해석하는 문제
age = int(input("나이를 입력하세요: "))
city = input("거주 도시를 입력하세요: ")
if _________________________________:
print("이벤트 참여 가능")
else:
print("참여 불가")
✨ 힌트:
age >= 20
city == "서울"
또는city == "부산"
🖨️ 출력 예시: 입력값: 23
, 서울
이벤트 참여 가능
✅ 정답 코드:
age = int(input("나이를 입력하세요: "))
city = input("거주 도시를 입력하세요: ")
if age >= 20 and (city == "서울" or city == "부산"):
print("이벤트 참여 가능")
else:
print("참여 불가")
🔍 해설:
and
와or
의 결합이 중요한 문제.- 괄호로
or
조건을 묶지 않으면 논리 오류가 발생할 수 있음. - 실제 회원가입 조건이나 필터링 조건에서도 사용되는 방식.